#include <boost/archive/binary_iarchive.hpp>
#include <boost/archive/binary_oarchive.hpp>
#include "Vec2.hpp"
#include "Tri.hpp"
#include "Color.hpp"
#include "Mat3.hpp"

//BOOST_CLASS_TRACKING(Vec3, boost::serialization::track_never)
//BOOST_CLASS_IMPLEMENTATION(Vec3, boost::serialization::object_serializable)

namespace boost
{
namespace serialization
{

template <typename AR>
void serialize(AR& ar, Vec2& v, const unsigned int file_version)
{
   ar & v.x & v.y;
}

template <typename AR>
void serialize(AR& ar, Tri& v, const unsigned int file_version)
{
   ar & v.a & v.b & v.c;
}

template <typename AR>
void serialize(AR& ar, Color& v, const unsigned int file_version)
{
   ar & v.r & v.g & v.b & v.a;
}

template <typename AR>
void serialize(AR& ar, Mat3& v, const unsigned int file_version)
{
   ar & v.values;
}

}
}
